#pragma once
// 包含必要的头文件
#include <string>

// 任务类：表示一个简单的计算任务
class Task
{
public:
    // 默认构造函数
    Task()
    {}
    
    // 带参构造函数：初始化两个操作数
    // 参数a：第一个操作数
    // 参数b：第二个操作数
    Task(int a, int b)
    : _a(a)  // 初始化第一个操作数
    , _b(b)  // 初始化第二个操作数
    , _result(0)  // 初始化结果为0
    {}
    
    // 执行任务：计算两个数的和
    void Excute()
    {
        _result = _a + _b;  // 计算两数之和并保存结果
    }
    
    // 将结果转换为字符串形式
    // 返回值：形如"a+b=result"的字符串
    std::string ResultToString()
    {
        return std::to_string(_a) + "+" + std::to_string(_b) + "=" + std::to_string(_result);
    }
    
    // 获取调试用的字符串表示
    // 返回值：形如"a+b= ?"的字符串，表示任务尚未执行
    std::string DebugToString()
    {
        return std::to_string(_a) + "+" + std::to_string(_b) + "= ?";
    }
    
    // 析构函数
    ~Task()
    {}

private:
    int _a;      // 第一个操作数
    int _b;      // 第二个操作数
    int _result; // 计算结果
};

// #pragma once

// #include <iostream>
// #include <functional>

// using Task = std::function<void()>;


// void Download()
// {
//     std::cout << "this is a download task" << std::endl;
// }